package com.gitee.zhuyb.poi;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Map;

import freemarker.cache.FileTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

/**
* <p>Description: freemarker工具类</p>
* @author zhuyb
* @date 2021-07-18 20:07:02
* @version 1.0
*/
public class FreemarkerUtil {

	/**
	 * 处理模板文件，生成代码
	 * @param templatePath 模板所在路径
	 * @param templateName 模板文件名称
	 * @param dataModel 数据模型
	 * @throws IOException
	 * @throws TemplateException
	 */
	public static void process(String templatePath, String templateName, String fileName,
			Map<String, Object> dataModel) throws IOException, TemplateException {
		// 获取配置类
		Configuration cfg = new Configuration();
		// 指定模板加载器
		File file = new File(templatePath);
		FileTemplateLoader ftl = new FileTemplateLoader(new File(file.getAbsolutePath()));
		// 设置模板加载器
		cfg.setTemplateLoader(ftl);
		// 获取模板文件
		Template template = cfg.getTemplate(templateName, "UTF-8");
		// 处理文件
		template.process(dataModel, new FileWriter(new File(fileName)));
	}

}
